package edu.gdkm.dao;

import edu.gdkm.pojo.CompanyInfo;
import org.apache.ibatis.annotations.*;
import java.util.List;

public interface CompanyInfoDAO {
    /**
     * 新增公司信息
     * @param companyInfo 公司信息对象
     * @return 是否成功
     */
    @Insert("INSERT INTO company_info(user_id, company_name, industry, scale, nature, introduction, address, website, contact_person, create_time, update_time) " +
            "VALUES(#{userId}, #{companyName}, #{industry}, #{scale}, #{nature}, #{introduction}, #{address}, #{website}, #{contactPerson}, #{createTime}, #{updateTime})")
    boolean insert(CompanyInfo companyInfo);
    
    /**
     * 根据ID删除公司信息
     * @param id 公司信息ID
     * @return 是否成功
     */
    @Delete("DELETE FROM company_info WHERE id = #{id}")
    boolean deleteById(Long id);
    
    /**
     * 更新公司信息
     * @param companyInfo 公司信息对象
     * @return 是否成功
     */
    @Update("UPDATE company_info SET user_id = #{userId}, company_name = #{companyName}, industry = #{industry}, scale = #{scale}, nature = #{nature}, introduction = #{introduction}, address = #{address}, website = #{website}, contact_person = #{contactPerson}, update_time = #{updateTime} WHERE id = #{id}")
    boolean update(CompanyInfo companyInfo);
    
    /**
     * 根据ID查询公司信息
     * @param id 公司信息ID
     * @return 公司信息对象
     */
    @Select("SELECT * FROM company_info WHERE id = #{id}")
    CompanyInfo selectById(Long id);
    
    /**
     * 查询所有公司信息
     * @return 公司信息列表
     */
    @Select("SELECT * FROM company_info")
    List<CompanyInfo> selectAll();
    
    /**
     * 根据用户ID查询公司信息
     * @param userId 用户ID
     * @return 公司信息对象
     */
    @Select("SELECT * FROM company_info WHERE user_id = #{userId}")
    CompanyInfo selectByUserId(Long userId);
    
    /**
     * 根据公司名称查询公司信息
     * @param companyName 公司名称
     * @return 公司信息列表
     */
    @Select("SELECT * FROM company_info WHERE company_name LIKE CONCAT('%', #{companyName}, '%')")
    List<CompanyInfo> selectByCompanyName(String companyName);
}
